<%@ page import="com.webtest.javabeantest.Customer" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: lzy
  Date: 2018/8/8
  Time: 22:29
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL2</title>
</head>
<body>
sessionid:${requestScope.session.id}
<br/>
age:${sessionScope.customer.age}
<br/>
<%--EL中的. []运算符--%>
<%--如果域对象中的属性名带有特殊字符，则使用[]可以正确获取所需的属性--%>
age:${sessionScope["customer"].age}
<%
    Customer customer = new Customer();
    customer.setName("testName");
    customer.setAge(23);
    request.setAttribute("customer", customer);
    session.setAttribute("oa.crscd.com.cn", customer);
%>
<br/>
<%--如果域对象中的域属性名带有特殊字符，则使用[]运算符会很方便--%>
name:${sessionScope["oa.crscd.com.cn"].name}
<br/>
<hr/>
<%--如果没有指定作用域，则EL表达式会按照属性范围从小到大进行查找，属性范围是PageScope,RequestScope,SessionScopte,ApplicationScope--%>
name:${customer.name}
<br/>
age:${customer.age}
<br/>
<hr/>
<%--EL可以进行自动的类型转换--%>
score:${param.score+1}
<br/>
score:<%=request.getParameter("score")+1%>
<br/>
<hr/>
<%--EL中的隐含对象之与范围相关的：pageScope,requestScope,sessionScope,applicationScope--%>
隐含对象之与范围相关的隐含对象：
<br/>
<%
    application.setAttribute("time",new Date());
%>
time:${time}
<br/>
<hr/>
输入相关的隐藏对象
<br/>
<%--与输入有关的隐含对象:param,paramValues--%>
score:${param.score}
<br/>
names:${paramValues.name}
<br/>
name:${paramValues.name[0]}
<br/>
<%--names:${paramValues.name[0].class}--%>
<br/>
<%--names:${paramValues.name[0].class.name}--%>
time:${applicationScope.time.time}
<hr/>
<%--6.其他隐含对象：pageContext(cookie,header,initParam仅做了解即可)--%>
JSESSIONID:${cookie["JSESSIONID"]}
<br/>
cookie:${cookie["JSESSIONID"].name}-${cookie["JSESSIONID"].value}
<br/>
header:${header["Accept-Language"]}
<br/>
initParam:${initParam["driver"]}
<br/>
<hr/>
pageContext:
<br/>
contextPath:${pageContext.request.contextPath}
<%--pageContext:pageContext即为PageContext类型，但只能读取属性，不能修改，只要有getter，就可以一直.下去--%>
sessionId:${pageContext.session.id}
<br/>
sessionAttributeNames:${pageContext.session.attributeNames}
<br/>
remote Address:${pageContext.request.remoteAddr}
<br/>
<hr/>
<%--EL的关系运算符--%>
${param.score>60?"及格":"不及格"}
<br/>
<%
    List<String> names = new ArrayList<>();
    names.add("aaa");
    request.setAttribute("names", names);
%>
<%--empty可以作用于一个集合，若该集合不存在或集合中没有元素，其结果都为true--%>
names is empty?${empty requestScope.names}

</body>
</html>
